package cn.sunjinxin.trade.client.api.request;

import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.FieldDefaults;

import java.io.Serializable;

/**
 * @author issavior
 */
@Data
@Builder(builderMethodName = "to", buildMethodName = "end")
@FieldDefaults(makeFinal = true, level = lombok.AccessLevel.PRIVATE)
public class OrderPayRequest implements Serializable {

    /**
     * b2c订单号
     */
    @NotNull
    Long orderNo;

    /**
     * 用户ID
     * <pre>
     *
     * </pre>
     */
    String userId;

    /**
     * 业务类型
     * <pre>
     *     门票
     *     酒景
     * </pre>
     */
    String bizType;

    /**
     * 订单类型
     * <pre>
     *     TP：用户订单
     *     BP：平台订单
     *     PS：采购订单
     * </pre>
     */
    String orderType;

    /**
     * 产品ID
     * <pre>
     *     spu : sku = 1 : n
     * </pre>
     */
    Long productSpuId;

    /**
     * 购买数量
     */
    Integer buyQuantity;

    /**
     * 零售价
     */
    String retailPrice;

    /**
     * 支付金额
     */
    String payFee;

}
